In storage systems, overall system and/or application performance is improved by caching the data that is frequently accessed (i.e., “hot data”) on faster and more capable drives or media such as solid state drives (SSDs) or Peripheral Component Interconnect (PCI) or PCI express flash memory (such as NOR or NAND flash memory). Many application workloads benefit and provide improved performance if cache is used in write back mode. Because cache data is held in write back mode longer, the cache needs to be protected against data loss by providing redundancy. For example, if a controller has a cache system with two storage modules, then redundancy would need to be provided to the cache system to protect against data loss. Currently, for example, some cache systems with two flash modules utilize RAID level 1 (“Redundant Array of Independent Disks” level 1) pairs for the cache system to mirror the cache data of each flash module to the other flash module. However, the use of RAID 1 mirroring in a two-module flash-based cache system effectively reduces data capacity of the two-module cache-system to an equivalent of one module.
Currently, there are no mechanisms for improving data capacity of cache systems while providing the necessary redundancy in the event of a system failure, hardware failure, power loss, or the like.
Therefore, it may be desirable to provide a method and apparatus which address the above-referenced problems.